2004年08月06日
川俣晶の縁側ソフトウェアRuby&RPGツクールXP total 3999 count

Rubyのイテレータを初体験 (C#、VB.NETとソース比較付き)

Written By: 川俣 晶連絡先

 なんだか久々にRPGツクールXPを起動。

 気になる機能がいくつかあるので、さっそくヘルプの言語解説のあたりを見てみると。

 イテレータが実に面白そうな雰囲気だったので試してみました。

[1,2,3].each { |i| p i }

exit

 これで、1,2,3という数字を表示するメッセージボックスが3回出てきます。

 これに相当するものをC#で書くとこんな感じかな。(結果はコンソールに出るので、そこは動作が違いますが)

foreach( int i in new int [] { 1,2,3 } )

{

    Console.WriteLine(i);

}

 更に悪のりしてVB.NETで書くとこんな感じ。

For Each i As Integer In New Integer() {1, 2, 3}

    Console.WriteLine(i)

Next

 この3つを見比べて思うこと。

 昔のプログラム言語と比較すれば、C#やVB.NETはよく進歩していると思います。この簡潔さでこれが書けているのは、感動的とすら言えます。

 しかし、その感動よりも遙かに簡潔に書き切っているのがRubyですね。C#やVB.NETで3行に分けて書いたものが、実質"[1,2,3].each { |i| p i }"だけ。

 もちろん、単純に短ければ良いという訳ではありませんが、C#やVB.NETはまだ完成形ではなく、練り込む余地があると思って良いでしょう。

 それにしても、Rubyは見れば見るほどプログラム言語ミーハーを誘惑する魅力がありますね。